Integrated circuits may be implemented in a device for processing data. Further, the data may be processed according to different protocols which may be proprietary protocols or public protocols which conform to data transmission standards. However, depending upon a given protocol, different hardware elements may be required. The implementation of the various hardware elements may affect the performance of the device, such as throughput, latency and power consumption, for example. Each of these performance criteria continues to be significant in the evaluation of a device. That is, circuit developers continue to improve the speed of a device while reducing the power consumed by the device.
Further, there is considerable effort to reduce the cost of implementing integrated circuits. One way of reducing the cost of implementing integrated circuits is to enable a given circuit to be used in a variety of different applications. That is, if a circuit can be programmed to operate in different configurations and implement different circuits, a more cost efficient device having integrated circuits may be achieved. One area of data processing which may benefit from circuit improvements is the implementation of a key-value store (KVS). A conventional server may use its main memory for the key-value store, and has a network adapter to interface with client devices. While different types of memory can be used to store data, different types of memory have different operating parameters and can affect the operation of a KVS. Accordingly, there is a need for devices which provide flexibility and therefore improve the performance of data processing.